#include <stdio.h>
#include <stdlib.h>

typedef struct LNode
{
    int data;
    struct LNode *next;    
} LNode, *LinkList;

LinkList create_list(int);
void print(LinkList);

/**
 * 题目：创建一个链表。
*/
int main(int argc, char const *argv[])
{
    LinkList head = NULL;
    int n;

    printf("请输入链表的大小：");
    scanf("%d", &n);
    head = create_list(n);

    printf("链表中的各个值为：\n");
    print(head);

    printf("\n");

    return 0;
}

LinkList create_list(int n)
{
    LinkList l, p, q;
    int i;
    l = (LNode*) malloc(sizeof(LNode));
    if(!l)
        return 0;
    
    l->next = NULL;
    q = l;

    for(i=1; i<=n; i++)
    {
        p = (LinkList) malloc(sizeof(LNode));
        printf("请输入第%d个元素的值:", i);
        scanf("%d", &(p->data));
        p->next = NULL;
        q->next = p;
        q = p;
    }
    return l;
}

void print(LinkList h)
{
    LinkList p = h->next;
    while (p!=NULL)
    {
        printf("%d ", p->data);
        p=p->next;
    }
    
}